/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						    replace_keywords.h

	$Header: /game/replace_keywords.h $

	$NoKeywords: $

 ************************************************************************/

#ifndef REPLACE_KEYWORDS_H_INCLUDED
#define REPLACE_KEYWORDS_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// kill the 255+ character identifier warning.  Templates tend to exceed that easily.
#pragma warning( disable: 4786 )

#include <string>

enum	t_creature_type;
enum	t_material;
class	t_material_array;
struct	t_skill;
enum	t_skill_mastery;
enum	t_skill_type;
enum	t_spell;

std::string replace_keywords( std::string const& format_string, std::string const& keyword,
							  std::string const& text );
std::string replace_keywords( std::string const& format_string,
							  std::string const& keyword_1, std::string const& text_1, 
							  std::string const& keyword_2, std::string const& text_2 );
std::string replace_keywords( std::string const& format_string,
							  std::string const& keyword_1, std::string const& text_1, 
							  std::string const& keyword_2, std::string const& text_2,
							  std::string const& keyword_3, std::string const& text_3 );
std::string replace_keywords( std::string const& format_string, int amount, t_material material );
std::string replace_keywords( std::string const& format_string,
							  t_material_array const& materials );
std::string replace_keywords( std::string const& text, int amount, t_creature_type creature,
							  bool approximate );
std::string replace_keywords( std::string const& text, t_skill_type skill, 
							  t_skill_mastery mastery );
std::string replace_keywords( std::string const& text, t_skill const& skill );

std::string capitalize_words( std::string const & text );

#endif // REPLACE_KEYWORDS_H_INCLUDED
